// 增强版 fetch
require('es6-promise').polyfill();
import fetch from 'isomorphic-fetch'
import Tip from '../components/Tip'


function checkStatus(response){
    if(response.ok) {
        return response;
    } else {
        const error = new Error(response.statusText);
        error.response = response;
        throw error;
    }
}
function parseJSON(response){
    return response.json();
}

export default function enchanceFetch(url, options){
    options = options || {}
    if(!options.credentials){
        options.credentials = 'include'
        // {credentials: 'include'}
    }
    options.headers = Object.assign({
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    }, options.headers);
    if(typeof options.body !== 'string') {
        options.body = JSON.stringify(options.body);
    }
    return fetch(url,options)
    .then(checkStatus)
    .then(parseJSON)
    // .then(res => {
    //     switch (res.code) {
    //         case '200':
    //             if(sucessCallback && typeof(sucessCallback) == 'function'){
    //                 sucessCallback(res)
    //             }
    //             // resolve(res);
    //             break;
    //         case '611':
    //         case '612':
    //         case '613':
    //             // 弹出登录
    //             Login.show();
    //             if(errorCallback && typeof(errorCallback) == 'function'){
    //                 errorCallback(res)
    //             }
    //             // reject(res);
    //             break;
    //         default:
    //             // tip 显示报错信息
    //             Tip.show(res.message);
    //             if(errorCallback && typeof(errorCallback) == 'function'){
    //                 errorCallback(res)
    //             }
    //             // reject(res);
    //     }
    // })
    // .catch(err => {
    //     Tip.show(JSON.parse(err))
    //     if(errorCallback && typeof(errorCallback) == 'function'){
    //         errorCallback(res)
    //     }
    //     // reject(err);
    // });
}
